'''
Created on 20/06/2014

@author: Vitor e Monique
'''
from backPropagation.RedeNeural2Camadas import redeNeural
from funcoesEderivadas.criarSaidas import escreveSaida
from funcoesEderivadas.criarEntradas import criaEntrada16atrib
from funcoesEderivadas.TangenteHiperbolica import tanHiper, derivadaTanHiper
from funcoesEderivadas.fazTestes import testa

if __name__ == '__main__':
    
    print("-------------------------------------------------------------------------------------")
    print("Teste 3 - 16 entradas, 12 neuronios na Camada Intermediaria\n\n")
    
    entradas, zDesejados, entradasTeste, zDesejadosTeste, omegasEntradaMeio, tetasMeio, omegasMeioSaida, tetaSaida = criaEntrada16atrib("../arquivos/entrada/dados.xlsx", 12) 
    
    listaErros, NEWomegasEntradaMeio, NEWomegasMeioSaida, NEWtetasMeio, NEWtetaSaida = redeNeural(entradas, zDesejados, omegasEntradaMeio, tetasMeio, omegasMeioSaida, tetaSaida, tanHiper, derivadaTanHiper)
        
    escreveSaida("../arquivos/saida/", len(entradas[0]), len(tetasMeio), listaErros, NEWomegasEntradaMeio, NEWomegasMeioSaida, NEWtetasMeio, NEWtetaSaida)
    
    testa(len(entradas[0]), entradasTeste, zDesejadosTeste, NEWomegasEntradaMeio, NEWomegasMeioSaida, NEWtetasMeio, NEWtetaSaida, tanHiper)
    
    print("Fim Treino e testes!\n\n")
    
    print("-------------------------------------------------------------------------------------")
    print("Teste 3 - 16 entradas, 18 neuronios na Camada Intermediaria\n\n")
    
    entradas, zDesejados, entradasTeste, zDesejadosTeste, omegasEntradaMeio, tetasMeio, omegasMeioSaida, tetaSaida = criaEntrada16atrib("../arquivos/entrada/dados.xlsx", 18) 
    
    listaErros, NEWomegasEntradaMeio, NEWomegasMeioSaida, NEWtetasMeio, NEWtetaSaida = redeNeural(entradas, zDesejados, omegasEntradaMeio, tetasMeio, omegasMeioSaida, tetaSaida, tanHiper, derivadaTanHiper)
        
    escreveSaida("../arquivos/saida/", len(entradas[0]), len(tetasMeio), listaErros, NEWomegasEntradaMeio, NEWomegasMeioSaida, NEWtetasMeio, NEWtetaSaida)
    
    testa(len(entradas[0]), entradasTeste, zDesejadosTeste, NEWomegasEntradaMeio, NEWomegasMeioSaida, NEWtetasMeio, NEWtetaSaida, tanHiper)
    
    print("Fim Treino e testes!\n\n")
    
    pass